A version control system (or revision control system) is a system that tracks incremental versions (or revisions) of files and, in some cases, directories over time. Version control systems are useful not only because they track various versions of a file or a directory of a user or a group of users, but also because they allow users to explore the respective changes, which resulted in each of those versions. At the core of version control systems is the repository, which is a central store of that system's data. The repository usually stores information in the form of a filesystem tree, i.e., a hierarchy of files and directories. Any number of client systems can connect to the repository, and then read or write to these files. When a file undergoes a series of changes, the repository tracks each version of the file and the respective users who made the changes.
Version control systems are used in the modern software development process to manage source code. There are various online source code repositories available on the market today. For example, GitHub®, Git®, Bitbucket®, and others. A source code repository is a file archive and web hosting facility where a large amount of source code, for software or for web pages, is kept. Those source code repositories can be kept publicly or privately. Online source code repositories are often used by open-source software projects and other multi-developer projects to handle various versions of the source code and to allow a number of users to work on its development.
The headings provided herein are merely for convenience and do not necessarily affect the scope or meaning of the terms used.